home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / win / pascal / ccontrl.exe / PERCENTC.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1991-11-10  |  1.8 KB  |  65 lines

  1. Unit PercentCtrl;
  2. Interface
  3.   Uses WinTypes, WinProcs, WObjects;
  4.  
  5.   type
  6.     PPercentCtrl = ^TPercentCtrl;
  7.     TPercentCtrl = object (TControl)
  8.                      function  GetClassName:  PChar;                    virtual;
  9.                      procedure Add(Pct:  integer);
  10.                      function  Percent:  integer;
  11.                      procedure SetIt(Pct:  integer);
  12.                      procedure Reset;
  13.                    end;
  14.  
  15. Implementation
  16.  
  17. {$I COMMCTRL.INC}
  18.  
  19.   var
  20.     LibraryLoaded:  boolean;
  21.     HLibrary     :  THandle;
  22.     SavedExit    :  Pointer;
  23.  
  24.   function TPercentCtrl.GetClassName:  PChar;
  25.     begin       { TPercentCtrl.GetClassName }
  26.       GetClassName := Pct_Name
  27.     end         { TPercentCtrl.GetClassName };
  28.  
  29.   procedure TPercentCtrl.Add(Pct:  integer);
  30.     begin       { TPercentCtrl.Add }
  31.       SendMessage(HWindow, pcm_AddPercent, Pct, 0)
  32.     end         { TPercentCtrl.Add };
  33.  
  34.   function TPercentCtrl.Get:  integer;
  35.     begin       { TPercentCtrl.Get }
  36.       Get := LoWord(SendMessage(HWindow, pcm_GetPercent, 0, 0))
  37.     end         { TPercentCtrl.Get };
  38.  
  39.   procedure TPercentCtrl.SetIt(Pct:  integer);
  40.     begin       { TPercentCtrl.SetIt }
  41.       SendMessage(HWindow, pcm_SetPercent, Pct, 0);
  42.     end         { TPercentCtrl.SetIt };
  43.  
  44.   procedure TPercentCtrl.Reset;
  45.     begin       { TPercentCtrl.Reset }
  46.       SendMessage(HWindow, pcm_ResetPercent, 0, 0);
  47.     end         { TPercentCtrl.Reset };
  48.  
  49.   procedure UnloadLibrary;
  50.     begin       { UnloadLibrary }
  51.       FreeLibrary(HLibrary);
  52.       ExitProc := SavedExit
  53.     end         { UnloadLibrary };
  54.  
  55.   begin
  56.     HLibrary      := LoadLibrary('C:\Programs\Units\Percent.DLL');
  57.     LibraryLoaded := HLibrary <> 0;
  58.     if LibraryLoaded
  59.      then
  60.       begin
  61.        SavedExit := ExitProc;
  62.        ExitProc  := @UnloadLibrary
  63.       end
  64.   end.
  65.